|
The (Stream) X-Machine Testing Methodology is a ''complete'' functional testing approach to software- and hardware testing〔M. Holcombe and F. Ipate (1998) ''Correct Systems - Building a Business Process Solution''. Springer, Applied Computing Series.〕 that exploits the scalability of the Stream X-Machine model of computation.〔Gilbert Laycock (1993) ''The Theory and Practice of Specification Based Software Testing''. PhD Thesis, University of Sheffield. (Abstract )〕 Using this methodology, it is likely to identify a finite test-set that exhaustively determines whether the tested system's implementation matches its specification. This goal is achieved by a divide-and-conquer approach, in which the design is decomposed by refinement〔F. Ipate and M. Holcombe (1998) 'A method for refining and testing generalised machine specifications'. ''Int. J. Comp. Math.'' 68, pp. 197-219.〕 into a collection of Stream X-Machines, which are implemented as separate modules, then tested bottom-up. At each integration stage, the testing method guarantees that the tested components are correctly integrated.〔F. Ipate and M. Holcombe (1997) 'An integration testing method that is proved to find all faults', ''International Journal of Computer Mathematics'' 63, pp. 159-178.〕 The methodology overcomes formal undecidability limitations by requiring that certain design for test principles are followed during specification and implementation. The resulting scalability means that practical software〔K. Bogdanov and M. Holcombe (1998) 'Automated test set generation for Statecharts', in: D. Hutter, W Stephan, P. Traverso and M. Ullmann eds. ''Applied Formal Methods: FM-Trends 98'', Boppard, Germany, ''Lecture Notes in Computer Science'' 1641, pp. 107-121.〕 and hardware〔Salim Vanak (2001), ''Complete Functional Testing of Hardware Designs'', PhD Thesis, University of Sheffield.〕 systems consisting of hundreds of thousands of states and millions of transitions have been tested successfully. == Motivation == Much software testing is merely hopeful, seeking to exercise the software system in various ways to see whether any faults can be detected. Testing may indeed reveal some faults, but can never guarantee that the system is correct, once testing is over. Functional testing methods seek to improve on this situation, by developing a formal specification describing the intended behaviour of the system, against which the implementation is later tested (a kind of conformance testing). The specification can be validated against the user-requirements and later proven to be consistent and complete by mathematical reasoning (eliminating any logical design flaws). Complete functional testing methods exploit the specification systematically, generating test-sets which exercise the implemented software system ''exhaustively'', to determine whether it conforms to the specification. In particular: * Full positive testing: confirms that all desired behaviour is present in the system; * Full negative testing: confirms that no unintended behaviour is present in the system. This level of testing can be difficult to achieve, since software systems are extremely complex, with hundreds of thousands of states and millions of transitions. What is needed is a way of breaking down the specification and testing problem into parts which can be addressed separately. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「X-Machine Testing」の詳細全文を読む スポンサード リンク
|